#ifndef CLIENTEMAPSERVER_H
#define CLIENTEMAPSERVER_H

#include "visor2d_global.h"
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QDomElement>
#include <QImage>
#include <QMutex>
#include "capaasincrona.h"

/*!
* Capa consistente en la imagen proporcionada por un servdor Map Server.
*/
class VISOR2D_EXPORT CapaMapServer : public CapaAsincrona
{
    Q_OBJECT

public:
    CapaMapServer();
    virtual ~CapaMapServer();

    void realizarPeticion(Peticion peticion);
  
private:
    QString extraerMensajeError(const QByteArray& xmlRespuesta);

private slots:
    void respuestaRecibida(QNetworkReply* respuesta);
	//void respuestaRecibidaInfo(QNetworkReply* respuesta);

signals:
    void imagenRecibida(QImage imagen, QRectF encuadeReal);
    void errorRecibido(QString mensaje);
    void informacionRecibida(QString informacion);

private:           
    QNetworkAccessManager manager;
	//QNetworkAccessManager managerInfo;

    QString hostServidor;
	QString servicioServidor;
    QString parametrosServidor;
    int puertoServidor;

    bool procesandoPeticion;
    bool hayError;
    QString mensajeError;
};

#endif // CLIENTEMAPSERVER_H
